Public Class WizardPageSummaryEventArgs
    Inherits EventArgs

    Friend h As Hashtable
    Private _BackSteps As Integer = 1
    Private _NameValueIntroduction As String = "You chose the following settings:"

    Public Property NameValueIntroduction() As String
        Get
            Return _NameValueIntroduction
        End Get
        Set(ByVal Value As String)
            _NameValueIntroduction = Value
        End Set
    End Property

    Public Sub New()
        MyBase.New()

        h = New Hashtable()
    End Sub

    Public Sub AddNameValuePair(ByVal Name As String, ByVal Value As String)
        h.Add(Name, Value)
    End Sub

    Public Property BackSteps() As Integer
        Get
            Return _BackSteps
        End Get
        Set(ByVal Value As Integer)
            _BackSteps = Value
        End Set
    End Property

End Class

Public Class WizardPageValidateEventArgs
    Inherits EventArgs

    Private _Page As WizardPage
    Private _Valid As Boolean = True
    Private _NextPage As Integer = -1

    Public Sub New(ByVal Page As WizardPage, ByVal NextPage As Integer)
        MyBase.New()

        _Page = Page
        _NextPage = NextPage
    End Sub

    Public ReadOnly Property Page() As WizardPage
        Get
            Return _Page
        End Get
    End Property

    Public Property Valid() As Boolean
        Get
            Return _Valid
        End Get
        Set(ByVal Value As Boolean)
            _Valid = Value
        End Set
    End Property

    Public Property NextPage() As Integer
        Get
            Return _NextPage
        End Get
        Set(ByVal Value As Integer)
            _NextPage = Value
        End Set
    End Property

End Class

Public Class WizardPageEventArgs
    Inherits EventArgs

    Private _Page As WizardPage
    Private _BackSteps As Integer

    Public Sub New(ByVal Page As WizardPage)
        MyBase.New()

        _Page = Page
        _BackSteps = 1
    End Sub

    Public ReadOnly Property Page() As WizardPage
        Get
            Return _Page
        End Get
    End Property

    Public Property BackSteps() As Integer
        Get
            Return _BackSteps
        End Get
        Set(ByVal Value As Integer)
            _BackSteps = Value
        End Set
    End Property

End Class

Public Class WizardPageDisplayedEventArgs
    Inherits EventArgs

    Private _Page As WizardPage
    Private _Cancel As Boolean
    Private _DisableBack As Boolean
    Private _DisableNext As Boolean

    Public Sub New(ByVal Page As WizardPage)
        MyBase.New()

        _Page = Page
    End Sub

    Public ReadOnly Property Page() As WizardPage
        Get
            Return _Page
        End Get
    End Property

    Public Property Cancel() As Boolean
        Get
            Return _Cancel
        End Get
        Set(ByVal Value As Boolean)
            _Cancel = Value
        End Set
    End Property

    Public Property DisableBack() As Boolean
        Get
            Return _DisableBack
        End Get
        Set(ByVal Value As Boolean)
            _DisableBack = Value
        End Set
    End Property

    Public Property DisableNext() As Boolean
        Get
            Return _DisableNext
        End Get
        Set(ByVal Value As Boolean)
            _DisableNext = Value
        End Set
    End Property
End Class